'use strict';
var moment = require('moment');
var dateJs = require('@/libs/date');
function ajaxController($scope){
    var text = `    // moment 全面替换我之前的工具库
        //////////////////////////////////////////////////////////////////////////////
        // 当前时间
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment() ,result_flag_here
        _bs( moment(new Date()) ,result_flag_here
        _bs( moment(new Date(2017,1,1)).format('YYYY-MM-DD') == '2017-02-01' ,result_flag_here
        _bs( moment([2017,1,1]).format('YYYY-MM-DD') == '2017-02-01' ,result_flag_here
        _bs( moment(new Date(2017,1-1,1)).format('YYYY-MM-DD') == '2017-01-01' ,result_flag_here
        _bs( moment([2017,1-1,1]).format('YYYY-MM-DD') == '2017-01-01' ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 多种格式给moment赋值
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment("29-06-1995", ["MM-DD-YYYY", "DD-MM", "DD-MM-YYYY"]) ,result_flag_here
        _bs( moment("05-06-1995", ["MM-DD-YYYY", "DD-MM-YYYY"]) ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 深拷贝
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment(moment([2012])) ,result_flag_here
        _bs( moment([2012]).clone() ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 标准格式化
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment().format() ,result_flag_here
        _bs( moment().format("dddd, MMMM Do YYYY, h:mm:ss a") ,result_flag_here
        _bs( moment().format("ddd, hA") ,result_flag_here
        _bs( moment().format('YYYY MM DD') ,result_flag_here
        _bs( moment().format('[today] dddd') ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 倒计时
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment([2007, 0, 29]).fromNow() ,result_flag_here
        _bs( moment([2007, 0, 29]).fromNow(true) ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 计算一个月有多少天
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment("2012-02", "YYYY-MM").daysInMonth() ,result_flag_here
        _bs( moment("2012-01", "YYYY-MM").daysInMonth() ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 日期的加减法
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment().add(7, 'd') ,result_flag_here
        _bs( moment().add(7, 'days').add(1, 'months') ,result_flag_here
        _bs( moment().add({days:7,months:1}) ,result_flag_here
        _bs( moment().subtract('seconds', 1) ,result_flag_here
        _bs( moment().subtract(1, 'seconds') ,result_flag_here
        _bs( moment(new Date(2017, 0, 25)).add(1, 'days').format('YYYY-MM-DD') == '2017-01-26',result_flag_here
        _bs( moment(new Date(2017, 0, 25)).add(1, 'months').format('YYYY-MM-DD') == '2017-02-25',result_flag_here
        _bs( moment(new Date(2017, 0, 25)).subtract(1, 'days').format('YYYY-MM-DD') == '2017-01-24',result_flag_here
        _bs( moment(new Date(2017, 0, 25)).subtract(1, 'months').format('YYYY-MM-DD') == '2016-12-25',result_flag_here
        _bs( moment(new Date(2017, 2, 31)).subtract(1, 'months').format('YYYY-MM-DD') == '2016-02-31',result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 两日期相差 年月日时分秒毫秒
        // years: 2015 months: 6 date: 26, hours: 1, minutes: 53, seconds: 14, milliseconds: 600
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment([2007, 0, 29]).diff(moment([2007, 0, 28])) ,result_flag_here
        _bs( moment([2007, 0, 29]).diff(moment([2007, 0, 28]), 'days') ,result_flag_here
        _bs( moment([2007, 0, 29]).diff(moment([2007, 0, 28]), 'years') ,result_flag_here
        _bs( moment([2007, 0, 29]).diff(moment([2007, 0, 28]), 'years', true) ,result_flag_here
        _bs( moment([2007, 0, 29]).diff(moment([2007, 0, 28]), 'months', true) ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 年龄
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment().diff(moment([1987, 1, 31]), 'years') ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 计算某天星期几
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment().day() ,result_flag_here
        _bs( moment().day(-7) ,result_flag_here
        _bs( moment().day(7) ,result_flag_here
        _bs( moment().day(10) ,result_flag_here
        _bs( moment().day(24) ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 判断是否闰年
        // =====================
        // liuyp 2019年6月11日09:59:51 moment逻辑
        //////////////////////////////////////////////////////////////////////////////
        _bs( moment([2000]).isLeapYear() == true ,result_flag_here
        _bs( moment([2001]).isLeapYear() == false ,result_flag_here
        _bs( moment([2100]).isLeapYear() == false ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 星座
        // =====================
        // liuyp 2019年1月9日11:00:26
        //////////////////////////////////////////////////////////////////////////////
        _bs(dateJs.date_xz(new Date),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 天干地支
        // =====================
        // liuyp 2019年1月9日11:00:26
        //////////////////////////////////////////////////////////////////////////////
        _bs(dateJs.date_gz(new Date),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 属相
        // =====================
        // liuyp 2019年1月9日11:00:26
        //////////////////////////////////////////////////////////////////////////////
        _bs(dateJs.date_sx(new Date),result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 农历时间
        // =====================
        // liuyp 2019年1月9日11:00:26
        //////////////////////////////////////////////////////////////////////////////
        _bs( dateJs.date_cnDate() ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 二十四节气
        // =====================
        // liuyp 2019年1月9日11:00:26
        //////////////////////////////////////////////////////////////////////////////
        _bs( dateJs.date_jieqi(new Date) ,result_flag_here
        //////////////////////////////////////////////////////////////////////////////
        // 完整输出 "丙申(猴)年 (闰)五月廿"
        // =====================
        // liuyp 2019年1月9日11:00:26
        //////////////////////////////////////////////////////////////////////////////
        _bs( dateJs.date_all(new Date) ,result_flag_here
        _bs( dateJs.date_all(new Date("1987-01-31")) == "丁卯(兔)年 一九八七年一月三十一日 正月初三 无节气",result_flag_here
        _bs( dateJs.date_all(new Date("1988-06-02")) == "戊辰(龙)年 一九八八年六月二日 (闰)四月十八 无节气",result_flag_here
        _bs( dateJs.date_all(new Date("2008-08-01")) == "戊子(鼠)年 二零零八年八月一日 (闰)七月初一 无节气",result_flag_here
    `;
    var dotest = function(code){
        try {
            var r = eval("("+code+")");
            if( r !== true && code.indexOf('==') > -1 ){ return '异常 ' + eval("("+ code.replace(/\=\=.*/, '') +")") }
            return r
        } catch(e){
            console.error("单元测试代码错误", e)
            return "UNITTESTERROR"
        } };
    text = text.replace(/\_bs\((.*)\,result\_flag\_here/g,function(a,b,c){
        var result = dotest(b);
        if( result === true ){ result = "UNITTESTOK" }
        return "UNITTESTTEST "+b+" UNITTESTRESULT "+ JSON.stringify(result)
    })
    $("#templateAPI").html(
        text.replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/\n[ ]{4}/g, '\n')
            .replace(/UNITTESTTEST/g, '<font color="#3333ff">测试代码: ')
            .replace(/UNITTESTRESULT/g, '</font><font color="#3333cc">结果</font>')
            .replace(/UNITTESTOK/g, '<span style="color: #4caf50;">单元测试通过</span>')
            .replace(/UNITTESTERROR/g, '<span style="color: #ff3300;">代码错误</span>')
    );
}
exports = module.exports = ajaxController;